# python 
#4-3 数到数到20 ：使用一个for 循环打印数字1~20（含）。
numlist = [value for value in range(1,21)]
for value in numlist:
    print(value)

#4-4 一百万一百万 ：创建一个列表，其中包含数字1~1 000 000，再使用一个for 循环将这些数字打印出来（如果输出的
#时间太长，按Ctrl + C停止输出，或关闭输出窗口）。
numlist2 = list(range(1,1000001))
#4-5 计算计算1~1 000 000的总和的总和 ：创建一个列表，其中包含数字1~1 000 000，再使用
#min() 和max() 核实该列表确实是从1开始，到1 000 000结束的。另外，对这个列表
#调用函数sum() ，看看Python将一百万个数字相加需要多长时间。
min = min(numlist2)
max = max(numlist2)
sums = sum(numlist2)
print(min)
print(max)
print(sums)
#4-6 奇数奇数 ：通过给函数range() 指定第三个参数来创建一个列表，其中包含1~20的奇数；再使用一个for 循环将这些数字都打印出来。
numlist3 = list(range(1,21,2))
for value in numlist3:
    print(value)

#4-7 3的倍数的倍数 ：创建一个列表，其中包含3~30内能被3整除的数字；再使用一个for 循环将这个列表中的数字都打印出来。
numlist4 = list(range(3,31,3))
for value in numlist4:
    print(value)

#4-8 立方立方 ：将同一个数字乘三次称为立方。例如，在Python中，2的立方用2**3 表示。
#请创建一个列表，其中包含前10个整数（即1~10）的立方，再使用一个for 循
#环将这些立方数都打印出来。
numlist5 = [value**3 for value in range(1,11)]
for value in numlist5:
    print(value)
#4-9 立方解析立方解析 ：使用列表解析生成一个列表，其中包含前10个整数的立方。

#4-10 切片切片 ：选择你在本章编写的一个程序，在末尾添加几行代码，以完成如下任务。
#打印消息“The first three items in the list are:”，再使用切片来打印列表的前三个元素。
#打印消息“Three items from the middle of the list are:”，再使用切片来打印列表中间的三个元素。
#打印消息“The last three items in the list are:”，再使用切片来打印列表末尾的三个元素。
print("The first three items in the list are:{list_slice}".format(list_slice = numlist5[0:3]))
print("The first three items in the list are:{list_slice}".format(list_slice = numlist5[1:4]))
print("The first three items in the list are:{list_slice}".format(list_slice = numlist5[-3:]))
#4-11 你的比萨和我的比萨你的比萨和我的比萨 ：在你为完成练习4-1而编写的程序中，创建比萨列表的副本，并将其存储到变#量friend_pizzas 中，再完成如下任务。
#在原来的比萨列表中添加一种比萨。
#在列表friend_pizzas 中添加另一种比萨。
#核实你有两个不同的列表。为此，打印消息“My favorite pizzas are:”，再使用一个for 循环来打印第一个列表；打印消#息“My friend's favorite pizzas are:”，再使用一
#个for 循环来打印第二个列表。核实新增的比萨被添加到了正确的列表中。

numlist5_copy = numlist5[:]
for nums in numlist5_copy:
    print("My friend's favorite pizzas are:{nums}".format(nums = nums))
#4-12 使用多个循环使用多个循环 ：在本节中，为节省篇幅，程序foods.py的每个版本都没有使用for 循环来打印列表。请#选择一个版本的foods.py，在其中编写两个for 循环，将各
#个食品列表都打印出来。

#4-13 自助餐自助餐 ：有一家自助式餐馆，只提供五种简单的食品。请想出五种简单的食品，并将其存储在一个元组中。
#使用一个for 循环将该餐馆提供的五种食品都打印出来。
#尝试修改其中的一个元素，核实Python确实会拒绝你这样做。
#餐馆调整了菜单，替换了它提供的其中两种食品。请编写一个这样的代码块：给元组变量赋值，并使用一个for 循环将新元组的#每个元素都打印出来。

foods = ("rice","veg","meat","bigmeat","smallmeat")
for food in foods:
    print("we provide {food}".format(food = food))
foods = ("rice","veg","meat","redmeat","tinymeat")
for food in foods:
    print("we provide {food}".format(food = food))